home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: delta / whiteline CD Series - delta.iso / tex / style / misc / lettersp.sty < prev    next >
Text File  |  1995-11-25  |  1KB  |  58 lines

  1.  
  2.  
  3. \newdimen \naturalwidth
  4. \newdimen \naturaldepth
  5. \newdimen \naturalheight
  6.  
  7. \chardef \atcode = \the \catcode `\@
  8. \catcode `\@ = 11
  9.  
  10. \newbox \l@tterspacebox
  11. \newtoks \l@tterspacetoks
  12.  
  13. \let \@x = \expandafter
  14.  
  15. \def \letterspace #1#%
  16.     {\def \hb@xmodifier {#1}%
  17.      \afterassignment \l@tterspace
  18.      \l@tterspacetoks =
  19.     }
  20.  
  21. \def \l@tterspace 
  22.     {\setbox \l@tterspacebox = \hbox {\the \l@tterspacetoks}%
  23.      \naturalwidth =  \wd \l@tterspacebox
  24.      \naturaldepth =  \dp \l@tterspacebox
  25.      \naturalheight = \ht \l@tterspacebox
  26.      \hbox \hb@xmodifier 
  27.         {\@x \l@tt@rspace \@x {\@x }\the \l@tterspacetoks \@nd}%
  28.     }
  29.  
  30. \def \l@tt@rspace #1#2\@nd
  31.     {\def \1{#1}%
  32.      \def \2{#2}%
  33.      \1%
  34.      \ifx \1\empty \else \ifx \2\empty \else \hss \fi \fi
  35.      \ifx \2\empty
  36.           \let \n@xt = \relax
  37.      \else
  38.           \futurelet \2\m@kespaceexplicit #2\@nd
  39.           \ifx \1\space \hss \fi
  40.           \def \n@xt {\expandafter \l@tt@rspace \2\@nd}%
  41.      \fi
  42.      \n@xt
  43.     }
  44.  
  45. \def \m@kespaceexplicit #1#2\@nd {\if \2 \def \2{{ }#1#2}\else \def \2{#1#2}\fi}
  46.  
  47. \catcode `\@ = \the \atcode
  48.  
  49. %%% Examples
  50.  
  51. %%% \letterspace {Now is the time for all good men}
  52. %%% \letterspace to \hsize {Now is the time for all good men}
  53. %%% \letterspace spread 0.3 \hsize {Now is the time for all good men}
  54. %%% \letterspace to 1.5 \naturalwidth {Now is the time for all good men}
  55. %%% \letterspace spread 0.5 \naturalwidth {Now is the time for all good men}
  56.  
  57. %%% \end
  58.